import React, { Component } from 'react'
import {Link,Route} from 'react-router-dom'
import Detail from './Detail'

export default class Message extends Component {

state = {
    messageArr: [
        {id:'01',title:'消息1'},
        {id:'02',title:'消息2'},
        {id:'03',title:'消息3'},
    ]   
}

pushShow = (id,title) => {
  //编写一段代码，让其实现跳转到Detail组件，且为replace跳转。
  this.props.history.push(`/home/message/detail/${id}/${title}`)
}

replaceShow = (id,title) => {
    //编写一段代码，让其实现跳转到Detail组件，且为replace跳转。
    this.props.history.replace(`/home/message/detail/${id}/${title}`)
}

back = () => {
    this.props.history.goBack()
}

forward = () => {
    this.props.history.goForward()
}


  render() {
    const {messageArr} = this.state;
    return (
      <div>
        <ul>
            {
                messageArr.map(msg => 
                <li key={msg.id}>
                    {/*向路由组件传递params参数*/}
                    <Link to={`/home/message/detail/${msg.id}/${msg.title}`}>{msg.title}</Link>&nbsp;&nbsp;
                    {/*向路由组件传递search参数*/}
                    {/* <Link to={`/home/message/detail/?id=${msg.id}&title=${msg.title}`}>{msg.title}</Link> */}
                    {/*向路由组件传递state参数*/}
                    {/* <Link to={{pathname:'/home/message/detail',state:{id:msg.id,title:msg.title}}}>{msg.title}</Link> */}
                    &nbsp;<button onClick={()=>this.pushShow(msg.id,msg.title)}>push查看</button>
                    &nbsp;<button onClick={()=>this.replaceShow(msg.id,msg.title)}>replace查看</button>
                </li>)
            }
        </ul>
        <hr/>
        {/*申明接受params参数*/}
        <Route path="/home/message/detail/:id/:title" component={Detail}/>
        {/*search参数无需申明接收,正常定义路由就行*/}
        {/* <Route path="/home/message/detail/" component={Detail}/> */}
        {/*search参数无需申明接收,正常定义路由就行*/}
        {/* <Route path="/home/message/detail/" component={Detail}/> */}
        <button onClick={this.back}>回退</button>&nbsp;
        <button onClick={this.forward}>前进</button>
      </div>
    )
  }
}
